 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.Logica.Clases
{
    public class Materia
    {
        private int _codigo;
        private string _nombre;
        private int _horasTeoria;
        private int _horasPractica;
        private string _descripcion;
        private string _estatus;

        public Materia()
        {
        }

        public Materia(int nuevoCodigo, string nuevoNombre, int nuevoHorasTeoria, int nuevoHorasPractica,
                       string nuevoDescripcion, string nuevoEstatus)
        {
            Codigo = nuevoCodigo;
            Nombre = nuevoNombre;
            HorasTeoria = nuevoHorasTeoria;
            HorasPractica = nuevoHorasPractica;
            Descripcion = nuevoDescripcion;
            Estatus = nuevoEstatus;

        }

        #region gets & sets
        public int Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        public string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        public int HorasTeoria
        {
            get { return _horasTeoria; }
            set { _horasTeoria = value; }
        }

        public int HorasPractica
        {
            get { return _horasPractica; }
            set { _horasPractica = value; }
        }

        public string Descripcion
        {
            get { return _descripcion; }
            set { _descripcion = value; }
        }

        public string Estatus
        {
            get { return _estatus; }
            set { _estatus = value; }
        }
        public String codigoNombre
        {
            // Devuelve los datos de la materia de la siguiente forma: 1 Desarrollo
            //Sirve para llenar DropDownList

            get { return this.Codigo + " " + this.Nombre; }
        }
        #endregion

        #region Metodos
        public override bool Equals(Object aComparar)
        {
            Materia Compara = null;
            bool Comparacion = false;
            if (aComparar != null)
            {
                if (ReferenceEquals(aComparar, this))
                    Comparacion = true;
                Compara = (Materia)aComparar;
                if (Compara.Codigo == this.Codigo)
                    Comparacion = true;
                else
                    Comparacion = false;
            }
            return Comparacion;
        }

        public int AgregarMateria(Materia m)
        {
            bool seAgrego = new SqlServerMateria().AgregarMateria(m);
            if (seAgrego == true)
            {
                m = new SqlServerMateria().ConsultarMateria(m.Nombre, 1);
                return m.Codigo;
            }
            else
                return 0;
        }

        public int EliminarMateria(Materia m)
        {
            return new SqlServerMateria().EliminarMateria(m);
        }
        #endregion Metodos
    }
}